﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Cotizav.LogicaNegocio
{
    public class PeriodoDocumentoBLL
    {
        public List<Entidades.PeriodoDocumento> Listar()
        {
            AccesoDatos.PeriodoDocumentoDAO periodoDocumentoDAO = new AccesoDatos.PeriodoDocumentoDAO();

            using (Util.ContextoDB ctx = Util.ContextoDB.GetContexto())
            {
                return periodoDocumentoDAO.Listar(ctx);
            }
        }

        public List<Entidades.PeriodoDocumento> Listar(Util.ContextoDB ctx)
        {
            AccesoDatos.PeriodoDocumentoDAO periodoDocumentoDAO = new AccesoDatos.PeriodoDocumentoDAO();

            return periodoDocumentoDAO.Listar(ctx);
        }

        public List<Entidades.PeriodoDocumento> Listar(Entidades.Periodo selPeriodo)
        {
            return Listar().Where(x => x.IdPeriodo == selPeriodo.IdPeriodo).ToList();
        }

        public List<Entidades.PeriodoDocumento> Listar(Entidades.Periodo selPeriodo, Util.ContextoDB ctx)
        {
            return Listar(ctx).Where(x => x.IdPeriodo == selPeriodo.IdPeriodo).ToList();
        }

        public int ActualizarCorrelativo(Entidades.PeriodoDocumento updPeriodoDocumento)
        {
            AccesoDatos.PeriodoDocumentoDAO periodoDocumentoDAO = new AccesoDatos.PeriodoDocumentoDAO();
            int resultado = 0;

            using (Util.ContextoDB ctx = Util.ContextoDB.GetContexto())
            {
                resultado = periodoDocumentoDAO.Actualizar(ctx, updPeriodoDocumento);
            }

            return resultado;
        }

        public int ActualizarCorrelativo(Entidades.PeriodoDocumento updPeriodoDocumento, Util.ContextoDB ctx)
        {
            AccesoDatos.PeriodoDocumentoDAO periodoDocumentoDAO = new AccesoDatos.PeriodoDocumentoDAO();
            int resultado = 0;

            resultado = periodoDocumentoDAO.Actualizar(ctx, updPeriodoDocumento);

            return resultado;
        }
    }
}
